Panel-based management of data objects from a plurality of data sources

ABSTRACT

A mechanism for providing panel-based management of data. In accordance with instructions on a machine-readable medium, a computing system receives data objects from various sources such as various user devices and application servers. Further, the computing system causes a device to display a graphical user interface through which a user can define panels that will be associated with various received data objects, so as to define a record, by time or subject matter, of relevant data objects. Further, the computing system allows a user to readily switch from display of one panel to display of another panel, so as to assist the user with multi-tasking and associated context switching.

BACKGROUND

With advances in technology, people today are exposed to anever-increasing quantity of information. Over the course of a singleday, for instance, it is now commonplace for a person to interact withmany different devices, both locally and through network communication,and to exchange data with those devices. For example, a person maylocally interact with various applications on traditional computing orcommunication devices such as personal computers, cell phones, musicplayers, media recorders, televisions, and gaming devices, and a personmay interact via a network with traditional application servers, such associal networking servers, e-mail servers, text messaging servers,cellular network servers, travel management servers, photo or videomanagement servers, and the like. Further, a person may interact withless traditional computing or communication devices, such as householdappliances, vehicles, security system servers, and the like.

Given all of this information, it also becomes increasingly necessaryfor people to multi-task or often switch from focusing on one set ofinformation to focusing on another set of information. For instance, atone moment, a person may be using a word processor on a personalcomputer to compose a particular document, and may have an open webbrowser session to assist in preparation of the document, while listingto soothing music from a music player. Yet at the next moment, theperson may receive a phone call that causes the person to discuss a newtopic and perhaps causes the person to browse to a different page and toengage in e-mail or text messaging communication regarding that othertopic and to turn on a television program regarding that other topic.Further, the person may then log into a social networking account toview wall posts. And at some point thereafter, the person may switchback to composing the document with the assistance of the web browser,while listening to music from the music player.

Unfortunately, however, switching back and forth between datainteraction like this, particularly when interacting with numerousdifferent devices and applications, can become hard to manage. While itmay be easy for a person to quickly switch from one project to another,it may be particularly difficult for the person to maintain continuityof individual projects when juggling so many projects over time.

SUMMARY

Disclosed herein is a technological mechanism (e.g., method, apparatus,or system) to help a person keep track of and recall the person's datainteractions, so as to facilitate improved multi-tasking. The mechanismcan be usefully employed in a scenario where the person interacts withnumerous devices, or even where the person just interacts with numerousapplications on a single device. The mechanism provides for collectingdata objects related to a person's data interaction with one or moredevices and providing a graphical user interface through which theperson can define, store, and recall “panels,” each of which isdynamically associated with the received data objects based ontimestamps of the data objects (e.g., as a record of the person's datainteraction at a particular time) and/or based on subject matter of thedata objects (e.g., as a record of the person's data interactionregarding a particular subject). Advantageously, panels may therefore beestablished to dynamically track various data interaction projects bythe person (e.g., data interaction that occurred at a particular time,and/or data interaction that related to a particular subject), andpanels may be retrieved and updated to help facilitate multi-tasking.

In one respect, disclosed is a non-transitory computer readable mediumhaving stored thereon instructions executable by a computing system tocarry out various functions including receiving data objects from aplurality of sources (e.g., devices, applications, etc.), storing panelseach defining a respective association with a set of the received dataobjects, causing a display of a device to display a graphical userinterface through which to present the received data objects, presentcreated panels, and allow creation and/or further definition of newpanels.

In practice, the received data objects each define a record ofinformation regarding a device event and/or device state, such as anevent or state that would involve user interaction or in some mannerimpact or relate to a user for instance. Further, each of the receiveddata objects includes a timestamp, such as a timestamp indicating a timeof the recorded information and/or a timestamp indicating a time ofreceipt of the data object.

The panels that each define a respective association with a set of thereceived objects may include “time-based panels” and “subject-matterpanels”. A time-based panel is a panel that defines an association withreceived data objects based on timestamps of the received data objects,and may thus function to establish a record of data objects regardingdevice event or state during a particular period of time, such as theperiod of time when the panel is being displayed and/or has focus. Asubject-matter panel, on the other hand, is a panel that that defines anassociation with received data objects based on subject matter of thereceived data objects. As such, a subject-matter panel may have adefined subject-matter filter indicating attributes of received dataobjects that would match the panel, so that data objects having thoseattributes can be automatically associated with the panel. A panel mayalso be a hybrid time-based panel/subject-matter panel, as where atime-based panel is limited by a subject-matter filter to be associatedwith just received data objects that match the subject-matter filter.

As noted above, the graphical user interface caused to be displayed on adevice display may include a general data-feed component for presentingindicia of the received data objects. This component may provide a raw,chronological display of data object indicia as the data objects arereceived. Further, the indicia of the data objects presented in thegeneral data-feed component may be selectable to cause the display topresent the respectively indicated data objects. For instance, eachindicium may be a link to a more full rendition of the data object, andupon receipt of user input invoking the link, the computing system maycause the display to display the more full rendition of the data object.Each indicium may include a representative icon (e.g., associatedapplication icon) and/or descriptive text.

Further, the graphical user interface may include a panel-presentationcomponent for presenting indicia of previously created panels. Inpractice, the presented indicium of each previously created panel mayinclude presentation of an indicium of the set of received data objectsassociated with the panel. For instance, the panel-presentationcomponent may include one section for each previously created panel,with each section denoting a panel title (user defined or computergenerated) and providing indicia of one or more received data objectsthat are associated with the panel. In the event these panelpresentations are abridged due to display size or the like, eachpresented panel could be selectable to cause the computing system topresent an expanded view of the panel, such as expanded indicia of theassociated data objects for instance.

In addition, the graphical user interface may include a panel-creationcomponent for receiving a command to create a new panel. For instance,the panel-creation component may include a button selectable to causethe computing system to create a new panel. Further, the panel-creationcomponent may present indicia of items that can be selected for use asbasis to define a subject-matter filter for the panel. These selectableitems may include the received data objects themselves, which could beindicated in much the same way that the general data-feed indicates themor may be indicated by the general data-feed itself. In addition oralternatively, the selectable items may include semantic objects thathave been extracted from the received data objects, such assender/recipient names extracted from e-mail or text messages, orsubject matter words extracted from the body of telephone or e-mailcommunications for instance.

In practice, when creating or defining (e.g., further defining) a firstpanel, the computing system may receive data that corresponds with inputrepresenting selection of one or more of the presented indicia of itemsto be used as a basis to define the subject-matter filter for the firstpanel, and the computing system may responsively use that selectioninput as a basis to define a subject-matter filter for the first panel.For instance, the computing system may define the subject-matter filterfor the first panel based on one or more attributes of the selecteditems, thereby causing the first panel's subject-matter filter toinherit, as limitations, the one or more attributes of the one or moreselected items.

Further, in accordance with the instructions, the computing system maymake a determination that one or more of the received data objectsdefines a record that a user device presented particular information atuser request (which may mean that that user was interested in thatparticular information). Responsive to making that determination, thecomputing system may then determine an attribute of the particularinformation and automatically create and store a second panel having asubject-matter filter keyed to the determined attribute.

In another respect, disclosed is a method including various similarfunctions. In practice, the method may involve receiving into acomputing system, from a plurality of devices, a plurality of dataobjects each representing device event information and/or device stateinformation, again such as user interface data for instance. Further,the method may involve the computing system extracting one or moresemantic objects from the received data objects, and the computingsystem causing a display of a device to display indicia of (i) aplurality of the received data objects and (ii) a plurality of thesemantic objects extracted from the received data objects.

The method may further include the computing system receiving data thatcorresponds with input representing a selection of one or more of thepresented indicia, and the computing system responsively using thatselection as a basis to define a subject-matter filter for a firstpanel. In addition, the method may involve the computing system causingthe display to present the first panel, possibly as a blank panel tostart, or possibly presenting indicia of previously received dataobjects that the computing system determines fall within thesubject-matter filter defined for the first panel.

Still further, the method may involve the computing system receivingadditional data objects, again from one or more devices for instance,and updating the presented panel accordingly. In particular, thecomputing system may determine that one or more of the receivedadditional data objects match the subject-matter filter of the firstpanel, and the computing system may responsively cause the display topresent indicia of those received additional data objects in associationwith the presented first panel.

Moreover, the computing system may determine that one or more of thereceived data objects defines a record that a user device presentedparticular information at user request (which, again, may mean that theuser was interested in that particular information). In response to thatdetermination, the computing system may thus responsively determining anattribute of the particular information and automatically create andstore a second panel having a subject-matter filter keyed to thedetermined attribute. And the computing system may cause the display topresent the second panel.

In yet another respect, disclosed is a non-transitory computer-readablemedium having stored thereon instructions executable by a computingsystem to carry out various functions to facilitate establishment andpresentation of subject-matter panels and time-based panels.

For instance, the computing system may receive from a plurality ofdevices a plurality of data objects each representing device eventinformation and/or device state information. Further, the computingsystem may extract one or more semantic objects from the received dataobjects, and the computing system may cause a display of a device topresent indicia of a plurality of the received data objects and aplurality of the semantic objects extracted from the received dataobjects. The computing system may then receive data corresponding toinput representing a selection of one or more of the presented indicia,and the computing system may use the selection as a basis to define asubject-matter filter for a first panel. Further, the computing systemmay cause the display to present the first panel.

In practice, the computing system may then receive additional dataobjects and may determine that the received additional data objectsmatch the subject-matter defined for the first panel. In response tomaking that determination, the computing system may then associate thefirst panel with the received additional data objects and cause thedisplay to present indicia of the received additional data objects inassociation with the presented first panel. Further, the computingsystem may store the first panel in association with the receivedadditional data objects. Advantageously, the stored first panel may thenbe subsequently retrieved to provide a view of the data objects thatwere associated with the first panel, perhaps in addition tosubsequently received data objects that fall within the first panel'ssubject-matter filter.

In addition, the instructions are executable by the computing system tofacilitate a determination that one or more received data objectsdefines a record that a user device presented particular information atuser request (again possibly indicating that the user was interested inthat particular information) Further, the instructions are thenexecutable, in response to that determination, to determine an attributeof the particular information and to automatically creating, store, andcause to be displayed a second panel having a subject-matter filterkeyed to the determined attribute.

The instructions are also executable by the computing system tofacilitate definition of a time-based panel. For instance, the computingsystem may receive data corresponding to input representing a request tocreate a time-based panel, and the computing system may responsivelycreate and cause the display to present the time-based panel. At first,the time-based panel may thus be empty. However, while the display ispresenting the time-based panel, the computing system may receive one ormore further data objects and may automatically cause the display topresent indicia of the one or more received further data objects inassociation with the presented time-based panel. Further, the computingsystem may store the time-based panel in association with the one ormore received further additional data objects, to facilitate laterrecall of the time-based panel.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the drawings and the followingdetailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified block diagram of an example system in which thepresent mechanism can be implemented.

FIG. 2 is a simplified block diagram of an example user device.

FIG. 3 is a simplified block diagram of an example application server.

FIG. 4 is a simplified block diagram of an example central computingplatform.

FIGS. 5-10 are illustrations of example user interface displays.

FIG. 11 is a flow chart depicting functions that can be carried out inaccordance with the present disclosure.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings, which form a part hereof. In the drawings,similar symbols typically identify similar components, unless contextdictates otherwise. The illustrative embodiments described in thedetailed description, drawings, and claims are not meant to be limiting.Other embodiments may be utilized, and other changes may be made,without departing from the spirit or scope of the subject matterpresented herein. It will be readily understood that the aspects of thepresent disclosure, as generally described herein, and illustrated inthe drawings, can be arranged, substituted, combined, separated, anddesigned in a wide variety of different configurations, all of which areexplicitly contemplated herein.

As a general matter the present mechanism can be implemented with acentralized computing system or on a single device computing system, orwith a combination or variation of such systems.

In a centralized computing system implementation, a central computer orcentral computing platform such as a cloud server or other cloud-basedcomputing system for instance may run a panel-management program thatreceives data objects from numerous devices that are in networkcommunication with the central computer and that causes one or more ofthe devices to present the graphical user interface described herein. Asthe various devices experience particular events or changes in state,the devices may thus generate and transmit corresponding data objects tothe central computer. Alternatively or additionally, if the centralcomputer itself provides application functionality for one or more ofthe connected devices, such as in a cloud computing system where thedevices are thin clients and applications run on a central server, thepanel-management program running on the central computer may receive thedata objects from various applications executed by the central computeritself.

On a given device, such as a mobile phone, tablet computer, notebookcomputer, or desktop computer for instance, the user may call up apanel-management client program, which (through network communication)may cause the central computer to deliver the graphical user interfacefor presentation on a display of the device. As the user interacts withthe graphical user interface or otherwise with the device,representative data may then be transmitted to the central computer, tocause the computer to take further actions as described herein, such ascreating new panels, defining panels, storing panels, and recallingpreviously defined panels for instance. Advantageously, these panels maythus represent event and/or state information regarding the variousdevices and/or applications that delivered data objects to the centralcomputer, organized by time and/or subject matter.

In practice, such a central computing system implementation could beused to manage data interactions for multiple users. Each user mayinteract with numerous devices, and those devices may provide dataobjects to the central computer, perhaps with each data object beingindexed to a user profile of the user (e.g., based on the user's accountassociation with the devices, or in some other manner). The centralcomputer may thus receive and store data objects associated withnumerous users. Further, the central computer panel-management programmay thus manage panels for numerous users, with each panel being indexedto a particular user profile.

When a given user invokes the panel-management client program on one ofthe user's devices and the central computer receives a request toprovide the graphical user interface to the user's device, the centralcomputer's panel-management program may limit its interaction with theuser's device to be with respect to the data objects received from thatuser's devices or otherwise associated with the user's profile. Further,the central computer's panel-management program may limit its managementand presentation of panels for the user's device to be just for panelslikewise associated with the user's profile.

In a single device computing system implementation, on the other hand, asingle user device such as a mobile phone, tablet computer, notebookcomputer, or desktop computer for instance, may receive data objects andmay run a panel-management program that causes a display of the deviceitself to present the graphical user interface. In this implementation,the device may receive the data objects from numerous sources, such asapplications or other logic modules running on the device itself, orfrom other devices in network connection (e.g., personal area networkconnection, or other network connection) with the device. Further, thepanel-management program running on the device, by interaction with theuser through the graphical user interface, would manage creation,definition, storage, and recalling of panels.

For simplicity of illustration and explanation, the present disclosurewill focus on the central computing system implementation from thispoint forward. However, it should be understood that the disclosure isnot restricted to that implementation and that the functions describedherein can be applied by analogy in the single device computing systemimplementation and in other implementations.

Referring to the drawings, as noted above, FIG. 1 is a simplified blockdiagram of an example system in which the present mechanism can beimplemented. As shown, the system includes a plurality of user devices12 communicatively linked with a network 14, and the network thenproviding connectivity with a plurality of application servers 16.Further, shown sitting as a node on the network or otherwise accessiblethrough the network is then a central computing platform 18, whichserves as a core of the present panel-management mechanism.

User devices 12 are any devices with which a user may engage in localinteraction. As noted above, examples of such devices include, withoutlimitation, personal computers (e.g., desktop computers, notebookcomputers, tablet computers, or handheld computers), cell phones, musicplayers, media recorders, televisions (e.g., set top boxes), gamingdevices, appliances, vehicles, and security systems. In practice, eachsuch device may include a user interface through which the deviceprovides information to the user and/or receives information from theuser.

Further, each such device may include logic such as applications forcarrying out various functions, and the device and/or its applicationsmay experience various events and state changes over time, much of whichmay be triggered by or may trigger user interface operation and may thusbe of interest to the user.

By way of example, a personal computer may experience events and statechanges such as powering on or off, connecting or disconnecting from thenetwork 14, reaching a threshold power state, moving from one locationto another (e.g., as indicated by GPS location tracking or WIFI SSIDbroadcast tracking), encountering errors, receiving user input,presenting output, or the like. Further, applications running on thepersonal computer may experience events and state changes such as beingopened or closed, transitioning from being out of focus to being infocus (e.g., becoming a top-most window), detecting presence of othernearby devices (e.g., through near-field communication or othershort-range wireless communication), and limitless events and statechanges involving application-specific functions, such as saving andopening documents, sending and receiving messages, presenting alerts,receiving user input, and so forth.

As another example, a cell phone may experience events and state changessimilar to those of a personal computer and may additionally experienceevents and state changes related to placing of calls, such as callattempts and successful call connections, missed calls, and the like.Likewise, as still another example, a television or associated set topbox, or other type of media player or media recorder, such as a headmounted video camera for instance, may experience events and statechanges also similar to those of a personal computer and mayadditionally experience events and state changes such as changing ofmedia output, recording of media or change in recording of media, and soforth.

And as yet another example, a vehicle may experience user interfaceevents and state changes, such as being powered on or off, moving fromone location to another, traveling at a particular speed, reaching athreshold fuel state, experiencing engine or mechanical trouble, or thelike. Numerous other examples exist as well, and still others will arisein the future.

FIG. 2 is a generalized block diagram depicting functional components ofan example user device 12 that may be involved with the presentpanel-management process. As shown, the example user device 12 includesa network communication interface 28, a GPS receiver 30, a userinterface 32, a processor 34, and data storage 36, all of which may becoupled together by a system bus, network, or other connection mechanism38.

Network communication interface 28 may provide for wired and/or wirelesscommunication in a personal area network, local area network,metropolitan area network, wide area network, or any other type ofnetwork. By way of example, the network communication interface mayinclude a module for engaging in short-range wireless communication(e.g., RFID, WIFI, or BLUETOOTH communication) with other nearby device.As another example, the interface may include a module for engaging inwired Ethernet communication with a local router, which may provide forlocal area network communication and may further provide connectivityfor wider area network communication. And as another example, theinterface may include a module for engaging in cellular wide areanetwork communication, such as through a cellular service provider'sradio access network for instance.

GPS receiver 30 may comprise a standard global positioning systemreceiver, arranged to receive signals from a global satellitepositioning system, so as to facilitate determination the location ofthe user device 12. Location determination may be carried out by theuser device itself or possibly with assistance of alocation-determination server on network 16.

User interface 32 functions to facilitate device interaction with a userand may thus take various forms. By way of example, the user interfacemay include output components such as a display screen 26 for providingvisual output, a sound speaker and headset connection for providingaudible output, a vibration generator for providing tactile (e.g.,vibration) output, among others. Further, the user interface may includeinput components such as a keyboard, keypad, pointing device,touch-sensitive display screen, microphone, and video camera, amongothers.

Processor 34 may comprise one or more general purpose processors (e.g.,INTEL microprocessors) and/or one or more special purpose processors(e.g., application specific integrated circuits and/or digital signalprocessors). Data storage 36 may then comprise one more volatile ornon-volatile, non-transitory storage components such as magnetic,optical, organic, or solid state (e.g., flash) storage components, andmay be wholly or partially integrated with processor 34.

As shown, data storage 36 is arranged to hold event and state data 40,and further contains program instructions 42 executable by processor 34to carry out various user device functions described herein. Forinstance, as shown, the program instructions 42 may includepanel-management logic 44, which may function (i) to cause user device12 to record the various event and state data 40 as the user deviceexperiences particular events and changes in state (ii) to generate dataobjects representing particular events and states, and (iii) to transmitthose data objects to the central computing platform 18 for processing.Further, if and when the user device functions as the device whosedisplay will present the graphical user interface of thepanel-management system, the panel-management logic may further function(i) to receive the graphical user interface from the central computingplatform, (ii) to present the graphical user interface, (iii) to receiveuser input provided through the graphical user interface, and (iv) totransmit data corresponding to that received input to the centralcomputing platform.

In a likely implementation, the user device 12 represented by FIG. 2 maybe a personal computer, such as a notebook computer, tablet computer, orhandheld computing device. In another possible implementation, however,the user device 12 could be a computing device designed to be worn on aperson, such as a head-mounted device. If such a device is structured asa pair of glasses, for instance, display functionality could be providedby miniature video projection onto the lenses of the glasses so as toprovide an up-front display for the wearer. Further, various inputmechanisms could be provided, including but not limited to atemple-based touchpad, a camera to detect eye movement on or in relationto the plane of the up-front display, or a separate input device. Otherarrangements are possible as well.

Returning to FIG. 1, application servers 16 may be any computer serversor platforms with which a user may interact via network 14. As notedabove, examples of such servers include, without limitation, socialnetworking servers, e-mail servers, text messaging servers, cellularnetwork servers, travel management servers, photo or video managementservers, and the like. In practice, each such server may provide aweb-based mechanism for interacting with the user or may otherwisefacilitate interaction with the user. In operation, each suchapplication server, like the user devices described above, may thusprovide information to the user and/or receive information from theuser.

Further, each such application server may likewise include logic such asapplications for carrying out various functions, and the applicationserver and/or its applications may experience various events and statechanges over time, much of which may be triggered by or may trigger userinterface operation and may thus be of interest to the user.

By way of example, a social networking server may maintain an accountfor the user and, upon user login, may present the user with wall postsfrom designated social-network friends of the user, as well as assortedother information likely relevant to the user. Further, the socialnetworking server may receive wall posts and other information enteredby the user, to post for viewing by others. Events and state changesexperienced by such a server may thus include user login and logout,receipt of new wall posts from the user or the user's friends, and thelike.

As another example, e-mail and text messaging severs may function toreceive, store, and send messages to and from the user, and instantmessaging servers may likewise function to send and receive messages toand from the user and may further function to track and report presencestatus of the user. Thus events and state changes that may beexperienced by such servers may include transmission of messages fromone user to another and detecting and reporting change in presencestatus of a user.

As still another example, a cellular network server such as a mobileswitching center, media gateway, home location register, authenticationcenter, home agent, billing server, or the like may function to trackand manage operation of cellular communication devices, such as toprocess device registrations, route calls, and track usage for billingpurposes. Thus, events and state changes that may be experienced by suchservers may include recording cell phone registration andauthentication, recording cell phone usage, and the like. Again numerousother examples may exist now or be developed in the future.

FIG. 3 is a simplified block diagram depicting functional components ofan example application server 16 that may be involved with the presentpanel-management process. As shown, the example application server 16includes a network communication interface 48, a processor 50, and datastorage 52, all of which may be coupled together by a system bus,network, or other connection mechanism 54.

Network communication interface 48 may comprise any module that enablesthe application server to communicate on network 14, so as to facilitatecommunicating with user devices 12 and central computing platform 18 forinstance. By way of example, the network communication interface may bea wired or wireless Ethernet network interface, coupled by one or morerouters or other connection devices with network 14.

Processor 50 may comprise one or more general purpose processors (e.g.,INTEL microprocessors) and/or one or more special purpose processors(e.g., application specific integrated circuits and/or digital signalprocessors). Data storage 52 may then comprise one more volatile ornon-volatile, non-transitory storage components such as magnetic,optical, organic, or solid state (e.g., flash) storage components, andmay be wholly or partially integrated with processor 50.

As shown, the data storage 52 of the example application server, likethe data storage of the various user devices, may be arranged to holdevent and state data 56, and may further contain program instructions 58executable by processor 50 to carry out various application serverfunctions described herein. For instance, as shown, the programinstructions 58 may include panel-management logic 60, which mayfunction (i) to cause application server 16 to record the various eventand state data 40 as the application server experiences particularevents and state changes, (ii) to generate data objects representingparticular events and states, and (iii) to transmit those data objectsto the central computing platform 18 for processing.

Again returning to FIG. 1, the cloud shown as network 14 is generallyrepresentative of one or more networks that can support communicationbetween the various devices and servers shown. For instance, network 14may comprise the public Internet and may further comprise any number ofprivate networks, such as local area networks, service provider corenetworks, and so forth. In practice, network 14 may thus includenumerous network connections, whether wired and/or wireless, in additionto routers, switches, gateways, and other devices to facilitatecommunication of data from one node to another.

Network 14 may support communication according to the Internet Protocol(IP) or according to any other protocol. In practice, for instance,devices that communicate on the network may each have a respective IPaddress, and communications may pass from one node or another in theform of IP packets originating at a source IP address and arriving at adestination IP address. In some cases, this IP communication may furtherinvolve various levels of network address translation to facilitatecommunication to and from nodes on private networks.

Further, application level communications between nodes on network 14may be carried out according to any agreed protocol. By way of example,nodes may communicate with each other according to the HypertextTransfer Protocol (HTTP) or Session Initiation Protocol (SIP), or usingmore advanced interactive web applications such as AsynchronousJAVASCRIPT and XML (AJAX), each of which is well known and therefore notdescribed here. Numerous other examples may be possible as well.

As noted above, central computing platform 18 serves as a core of theillustrated embodiment, by receiving data objects from various devices(e.g., user devices and application servers), and causing the display ofa user device to present a graphical user interface that allows a userto create and manage panels. To facilitate this functionality, as shownin FIG. 1, the central computing platform 18 includes panel-managementlogic 62, received data objects 64, extracted semantic objects 66, anddefined panels 68.

In practice, central computing platform 18 may take the form of a one ormore computer servers. For instance, the platform may be implemented ina cluster-based computing environment, where a number of computers areclustered together (e.g., physically proximate to each other, on one ormore racks for instance) or interconnected to each other by a networkswitching system (e.g., one or more switches or routers), withapplication logic possibly being distributed and replicated among thevarious computers.

FIG. 4 is a simplified block diagram depicting functional components ofan example central computing platform 18 in somewhat greater detail thanshown in FIG. 1. For simplicity, however, FIG. 4 does not depict acluster-based computing environment. As shown in FIG. 4, the examplecentral computing system includes a network communication interface 70,a processor 72, and data storage 74, all of which may be coupledtogether by a system bus, network, or other connection mechanism 76.

Network communication interface 70 may comprise any module that enablesthe central computing platform to communicate on network 14, so as tofacilitate communicating with user devices 12 and application servers 16for instance. By way of example, the network communication interface maybe a wired or wireless Ethernet network interface, coupled by one ormore routers or other connection devices with network 14.

Processor 72 may comprise one or more general purpose processors (e.g.,INTEL microprocessors) and/or one or more special purpose processors(e.g., application specific integrated circuits and/or digital signalprocessors). Data storage 74 may then comprise one more volatile ornon-volatile, non-transitory storage components such as magnetic,optical, organic, or solid state (e.g., flash) storage components, andmay be wholly or partially integrated with processor 72.

As shown, the data storage 74 of the example central computing platformis arranged to hold reference data 78 and program logic 80. In practice,reference data 78 may include user profile data 82, received dataobjects 64, extracted semantic objects 66, and defined panels 68.Program logic 80 may then include program instructions (e.g., machinelanguage instructions) executable by processor 72 to carry out variouscentral computing platform functions described herein, particularly tofacilitate various the panel-management functions for one or more users.

In practice, it will be understood that data storage 74 thus representsan example of a non-transitory computer-readable medium having storedthereon instructions executable by a computing system to carry outvarious panel-management functions described herein. However, in otherimplementations, the non-transitory computer-readable medium containingsuch instructions could take various other forms, such as a CD-ROM, aDVD-ROM, a magnetic disk drive, or other removable or non-removable,non-transitory computer readable medium.

User profile data 82 may comprise user profiles for various users orgroups of users who have a panel-management account or who have anaccount for a service that also provides for panel-management. As such,user profile data 82 may identify each user or group by a username orother unique identifier. Platform 18 may make use of user profile data82 to authorize users seeking to use the panel-management service.Further, as platform 18 creates panels for a particular user, theplatform may index those panels to the user's identifier, and theplatform 18 may filter the received data objects by the user'sidentifier so that panels indexed to the user's identifier will belimited to association with received data objects that are indexed tothe same user's identifier.

Received data objects 84 are the data objects that the platform 18receives from various devices, such as user devices 12 or applicationservers 16 for instance. As noted above, each data object may be a datarepresentation of particular event or state information regarding adevice, an application. Without limitation, examples of event and stateinformation regarding a device include information specifying thedevice's power status, the device's network presence, the device'slocation, any user-interface operation (e.g., instances of use ofparticular device features) and others described above. Also withoutlimitation, examples of event and state information regarding anapplication include records of file storage or retrieval, records ofdocument versions and websites visited, records of calls placed andreceived or messages sent and received, records of calendarnotifications, screenshots showing application windows open from time totime, and others described above.

Received data objects 84 may also represent other event or stateinformation of relevance to the user, such as information about theuser's environment as determined by one or more user devices 12 orapplication servers 16. Without limitation, examples of suchenvironmental information include (i) the location of the user (e.g., asdetermined by a cell phone or other device operated by the user), (ii)weather conditions experienced by the user or in the user's vicinity(e.g., as determined by a user device 12 or by one or more sensorsreporting to an application server 16), and (iii) aural and visualinformation in the user's environment (e.g., as captured by a mediarecording device operated by, for, or near the user, perhaps with themedia recording device or platform 18 converting such media intocorresponding text or another form that can be evaluated to determineits content). In practice, to help focus on information of specificrelevance to the user, each data object may define a record ofinformation regarding user-interface operation, such as input receivedvia a device user interface or information provided by a device userinterface.

Source devices may generate and transmit data objects to the platform 18automatically in when various device events or state changes occur or inresponse to user input requesting the source device to record an eventor state. For example, each time a personal computer opens a newapplication, or a tab or other subset of an application, the personalcomputer may automatically capture a screenshot, descriptor, or otherdata representing the opened application or subset as a data object andmay transmit that data object to platform 18. As another example, eachtime a media player plays a particular media selection, the media playermay automatically record an identification of the media selection orperhaps the media selection itself as a data object and may transmitthat data object to platform 18. As still another example, each time asocial networking server receives a wall post for a user's account, thesocial networking server may record that wall post as a data object andmay transmit that data object to platform 18. As yet another example,each time a cellular network server handles a call or data session to orfrom a given user, the server may make a record of that call as a dataobject and may transmit that data object to platform 18. Numerous otherexamples are possible as well.

In practice, each received data object may have one or more attributesthat function to characterize the substance of the data object, and eachdata object may include metadata (e.g., header data) that specifies itsone or more attributes.

For example, a data object representing a screen shot of a particularapplication may have as one attribute the name of the application and asanother attribute a descriptor of a state of the application (e.g., thename of an open document, identification of tabs open in theapplication, or the like). As another example, a data objectrepresenting an e-mail or text message sent to or from a user may haveas one attribute the identity one or more other parties to the message,and may have as another attribute one or more key words gleanedprogrammatically from the body of the messages. As still anotherexample, a data object representing media captured by a media recordingdevice operated by a user may have as an attribute one or more keywordssimilarly gleaned programmatically from the media content. And as yetanother example, a data object representing event or state informationregarding a work matter (e.g., involving a work related user device, oroccurring during working hours) may have as an attribute that the dataobject is work related, whereas a data object representing event orstate information regarding a personal matter (e.g., involving ahome/personal device, or occurring during non-work hours) may have as anattribute that the data object is personal related.

When generating and transmitting data objects to platform 18, sourcedevices themselves may add attribute metadata to each data object. Forinstance, if a source device has captured a screen shot of a particularapplication in response to a user invoking the application or bringingthe application into focus, the source device can readily add metadataspecifying the name of the application and other data that characterizesthe current state of the application. Likewise, if a source device hascaptured media content, the source device (by itself or with assistancefrom a application server) may programmatically evaluate the content toidentify particular words or phrases and to thereby identify the contentand one or more key words included in the content, and the source devicemay then add that information as metadata.

Alternatively or additionally, platform 18 may evaluate received dataobjects and may itself add metadata to the received data objects tocharacterize attributes of the data objects. For example, if a sourcedevice sends a data object defining a record of a text message to theplatform, the platform may programmatically evaluate the text message toidentify one or more other parties to the text message, and the platformmay then add metadata to the data object to specify the names of theidentified one or more other parties. And as another example, if asource device sends to the platform a data object defining a screen shotof a particular application window, the platform may programmaticallyevaluate the screen shot image to identify the application, and theplatform may then add an application name as metadata to the dataobject. Numerous other examples are possible as well.

To facilitate user-friendly display of data object indicia in thegraphical user interface, each data object may specifically includemetadata that associates the data object with a particular applicationor class of data objects, and a graphical icon may be associated witheach application or class. For example, a data object representing anevent or state related to a word processing application may includemetadata classifying the data object as word processing related, so thatwhen an indication of the data object is displayed, an icon related toword processing can be displayed as a quick indication of the dataobject class. As another example, a data object representing a messagesent to or from a particular person may include metadata classifying thedata object as being related to that person, so that when an indicationof the data object is displayed, an icon related to that person (e.g., athumbnail image of that person) can be displayed as a quick indicationof the data object class. As yet another example, a data object relatedto a calendar event may include metadata classifying the data object asa calendar event, so that when an indication of the data object isdisplayed, a calendar icon can be displayed as a quick indication of thedata object class.

In practice, each data object may also include metadata that indexes thedata object to a respective user profile, such as by specifying a useridentifier for instance. This user profile metadata may be addedprogrammatically by the source device, based on information about whichuser is currently logged into the source device for instance.Alternatively, upon receipt of a data object from a source device, theplatform may add the user profile metadata based on which source device(e.g., associated with a particular user profile) provided the dataobject. Other ways to index a data object to a particular user profilemay be possible as well.

Further, each data object may include a timestamp. The timestamp canrepresent the data object creation time, such as when the source devicemade a record of a particular event or state for instance, and may thusbe applied by the source device. If the source device promptly transmitsthe data object to the platform 18 after generating the data object,such a timestamp may also represent a data object transmission time.Alternatively, the timestamp can represent a time at which the platformreceived the data object, which may again be similar to the generationand transmission time. A timestamp may indicate time of day, day ofweek, date, and/or other time information.

Although FIG. 4 shows received data objects 84 being stored in datastorage 74 of the platform 18, it may also be feasible to provide aseparate storage server arranged to receive and store data objectsprovided by numerous devices for one or more users. In that arrangement,platform 18 may then regularly access the separate data storage toevaluate received data objects so as to determine data objectassociation with panels defined for a particular user.

Extracted semantic objects 66 include data that specifies semanticobjects extracted from various received data objects. These semanticobjects may be much the same as the metadata of particular data objectsor may be words, phrases or the like programmatically extracted (e.g.,read) from content of the data objects, and may thus be extractedthrough analysis by the source device at the time the data object iscreated or extracted through analysis by the platform upon or afterreceipt of the data object. Extracted semantic objects 66 may themselvesinclude metadata as well, such as user profile metadata to associate thesemantic objects with particular user profiles, and timestamp metadatato indicate a relevant time such as a time of creation or receipt of theunderlying data objects.

Defined panels 68, in turn, are core objects of the presentpanel-management system. Each panel may be stored as a panel objectassociated in a database relationship with a set of received dataobjects, so that when a panel is presented in the graphical userinterface, indicia of its associated data objects may be presented forquick reference by a user. Further, each panel object may have a numberof other attributes stored with it or in database association with it.

As noted above, at least two different types of panels are possible: atime-based panel and a subject-matter panel. A time-based panel isassociated with data objects received while the panel is beingdisplayed. Whereas, a subject-matter panel is associated with receiveddata objects that match a subject-matter filter defined for the panel.

When a time-based panel is stored, it may be stored with an indicationof the time (e.g., time range) when it was active. And when thegraphical user interface presents an indication of an existingtime-based panel, the graphical user interface may specify the time whenthe time-based panel was active. That way, a user can review theavailable panels and can readily identify one that related to the user'sdevice interaction at a particular time.

When a subject-matter panel is stored, it may be stored with aspecification of its subject matter filter. The subject-matter filtermay be defined as a logical expression that limits the panel's dataobject association to objects having one or more particular attributes.For instance, a subject-matter filter may limit data object associationto those data objects having attribute A or attribute B or attribute C.Other examples are possible as well.

In practice, platform 18 functions to receive and store data objectsfrom various devices, such as user devices 12 and application servers16, and platform 18 additionally functions to cause the display of agiven user device to display a graphical user interface that supportsdata object browsing, panel presentation, and panel creation. FIGS. 5-10are a series of images representing conceptually how this graphical userinterface may look and operate in an example implementation. As with theother description throughout this document, it should be understood thatmany variations from this example are possible.

Each of FIGS. 5-10 presents an image representing a touchscreen displayof a handheld communication device, such as a smart phone for instance.Due to the limited display space on such a device, it may not bepossible for the display to show the entire graphical user interface atonce. Rather, the display may present certain aspects of the graphicaluser interface in a scrollable manner, and the display may presentvarious aspects of the graphical user interface one at a time, such asin the form of separate display windows, panes, tabs, cards, or thelike. In an alternative embodiment, it is of course possible that moreof the graphical user interface may be presented at once, such as byconcurrently various sections of the type shown in the figures.

Further, where this document refers to “components” of the graphicaluser interface, it will be understood that such components may bediscrete portions of the graphical user interface, such as separatewindows for instance, or may be functional aspects of the graphical userinterface that are not limited to discrete presentation. For instance, agiven component that functions to present particular elements may alsobe used as part of another component that presents the same particularelements.

Optimally, much of the display in the example graphical user interfacewill be communicated dynamically (e.g., asynchronously) between thedisplay device and the computing platform 18. For instance, upon initialrequest from the device, the platform may transmit a first display pageto the device to cause the device to present the page, and the devicemay responsively present that page on its display. While the page isdisplayed, the device may then receive user input such as user clickingon a specific portion of the page, and the device may responsivelytransmit to the platform data corresponding with that user input. Inresponse to such data or at any other time while the page is beingdisplayed, the platform may then transmit to the device some updatedcontent for the page, and the device may responsively present thatupdated content in the currently presented page, so as to dynamically(e.g., asynchronously) update the presented content.

For example, the platform may initially transmit to the device a pagethat lists particular panels or particular data objects, and the devicemay responsively present that page on its display. As the platformreceives additional data objects that should be presented in associationwith a particular panel or should otherwise be presented in a list ofdata objects, the platform may then transmit to the device data thatrepresents an update of the currently displayed page, such as to replacecurrently displayed indicia with other indicia, or to add new indicia tothe display. As noted above, an interactive web application technologysuch as AJAX could be used for this purpose.

Furthermore, to allow the platform to programmatically determine whenthe device is presenting a given page, such as a page that represents aparticular panel for instance, the device may be arranged to signal tothe platform when the device closes the page or moves focus from thepage. Alternatively, the device, possibly in accordance with logicencoded in the page, may transmit periodic heartbeat signals to theplatform while the page is actively displayed, and the platform mayprogrammatically determine that the page is no longer displayed once theplatform detects absence of those heartbeat signals.

Referring now to FIG. 5, when a user first calls up the panel-managementprogram in an example implementation, the platform may provide theuser's device with a general data feed as shown. This data feed maypresent a raw list of received data objects related to the user'sprofile, possibly ordered reverse chronologically (e.g., with the latestreceived data object being presented first, and so forth). Inparticular, the display may present an indicia of each data object,conveniently with an icon representing the class of icon (e.g., calendarrelated, mail related, or other specific application related, orspecific person related). Thus, as the platform receives additional dataobjects related to the user's profile, each representing event and/orstate information regarding various ones of the user's devices,applications, or user environment, the platform may add indicia of thosedata objects to the general data feed presented to the user.

Shown at the bottom of the display screen in FIG. 5 are several examplebuttons that may be selectable to facilitate filtering the general datafeed. For example, if the user clicks on the mail icon, the device maytransmit to the platform data corresponding to that user input, and theplatform may responsively update the general data feed to be limited topresentation of just mail-related data objects. Likewise, if the userclicks on the calendar icon, the device may transmit to the platformdata corresponding to that user input, and the platform may responsivelyupdate the general data feed to be limited to presentation of justcalendar-related data objects.

In operation, a user may select a particular one of the data objectindicia shown in the general data feed, to cause presentation ofexpanded data regarding that data object. For instance, as shown in FIG.5, the user may select the third illustrated data object, and as aresult the system may present a display such as that shown in FIG. 6,providing additional details about the selected data object. In thisexample, the selected data object is a message from Mary Johnson, andthe display in FIG. 6 presents full content of that message. Further, atthe bottom of the display in FIG. 6 are “previous” and “next” buttons toallow a user to navigate to a previous or next data object of thoselisted in the general data feed.

The top bar of the display screen may provide a number of selectabletabs to allow user navigation to other aspects of the graphical userinterface. By way of example, one such tab may be a “panels” tab. Uponselection of the panels tab, in an example implementation, the systemmay present a panel-management page as shown in FIG. 7. The examplepanel-management page includes at its top a button selectable by theuser to trigger creation of a new, clean panel.

Further, the page presents various previously defined panels, includingby way of example a “work” subject-matter panel, a “personal”subject-matter panel, a time-based panel, and “Mary” subject-matterpanel. The “work” subject matter panel may be defined by asubject-matter filter to be associated with data objects having a “work”attribute and is shown having been last updated 12 hours ago. The“personal” subject matter panel may be defined by a subject-matterfilter to be associated with data objects having a “personal” attributeand is shown having been last updated 14 hours ago. The time-based panelis shown being associated with data objects from yesterday at noon. Andthe “Mary” subject matter panel may be defined as by a subject-matterfilter to be associated with data objects having “Mary” as an attribute,such as messages from Mary, phone calls with Mary, calendar itemsregarding Mary, and so forth, and is shown having been last updated 8hours ago. On this page, each panel may be presented together withrepresentative indicia of data objects associated with the panel.

In practice, a user may select a particular one of the presentedpreviously defined panels shown on this page, to cause presentation ofexpanded data regarding the panel, and to activate the panel. Forinstance, as shown in FIG. 7, the user may select the “Mary”subject-matter panel, and as a result the system may present a more fullrendition of the “Mary” subject-matter panel as shown in FIG. 8. Themore full presentation of the Mary panel in FIG. 8 may present apanel-specific data feed providing expanded indicia of received dataobjects that match the subject-matter filter of the Mary panel, againperhaps in chronological or reverse chronological order. Thus, anyreceived data objects that were previously associated with the Marypanel may be shown, and the system may update the page to add to thepanel any additional received data objects that match the Marysubject-matter filter. As with the general data feed, buttons may beprovided at the bottom of the display screen to allow a user to filterthe associated data objects if desired.

Returning to FIG. 7, if the user selects the “clean panel” button at thetop of the panel-management page, the system may then responsivelypresent the user with a panel-filter-definition page as shown by way ofexample in FIG. 9. By default, a command to create a new panel is acommand to create a time-based panel unless and until a subject-matterfilter is defined for the new panel. Thus, when a clean panel iscreated, the panel may constitute a time-based panel, becomingassociated with any data-objects that are received while the panel isactive. However, when the platform receives data corresponding to inputrepresenting a command to create a new panel received through thegraphical user interface, the platform may responsively create a newpanel and cause the display to present the panel-filter-definition pageof FIG. 9. Conveniently, that page allows the user to define asubject-matter filter for the panel so as to make the panel asubject-matter panel (instead of or in addition to being a time-basedpanel).

The panel-filter-definition page of FIG. 9 presents indicia of variousitems that the user can select to be “promoted” to the panel, i.e., tohave their attributes adopted as parameters of a subject-matter filterfor the panel. In practice, these items may include received dataobjects of the general data feed and may further include semanticobjects that the platform has extracted from those received data objectsas described above. In terms of the extracted semantic objects, forinstance, the platform may programmatically read, or otherwise analyzethe content and/or metadata of the various data objects and may therebyobtain words, phrases, descriptors, or other semantic objects from thedata objects. For example, as noted above, the platform may extractsender/recipient names from e-mail or text messages, or subject matterwords from the body of telephone or e-mail communications. Otherexamples are possible as well. The platform may then present indicia ofone or more of those extracted semantic objects, along with indicia ofone or more data objects.

The user may then select one or more of the presented items to define asubject-matter for the panel, and the platform may receive data thatcorresponds to input representing that selection and may responsivelydetermine one or more attributes of the selected items, such as text ofthe semantic objects, or content or metadata of the data objects, forinstance. The platform may then automatically generate for the panel asubject-matter filter that incorporates the determined attribute(s) asfilter parameters.

For example, as shown, the platform may have extracted from variousreceived data object the semantic objects “Mary” and “John”. Further,the platform may have received a mail data object that contains the word“vacation,” and the platform may have extracted that word as a semanticfrom that data object (and may display the word still in connection withthe mail icon). If the user selects the “Mary” and “John” objects andthe “vacation” semantic object, the platform may automatically createfor the panel a subject matter filter that limits data objectassociation for the filter to data objects related to Mary, John, orvacation. As a result, when the panel is active, the panel would presentany such received data objects for convenient viewing by the user.

Whether or not the user opts to define a subject-matter filter for thepanel, the user may then click on a continue button, such as the arrowbutton shown at the bottom of the page in FIG. 9. In response, thesystem may then present the newly defined panel, as shown in FIG. 10. Inthe illustrated example, FIG. 10 specifically presents no data objectsto start. However, over time, as the platform receives data objects thatfall within the panel, the platform would cause the panel to beassociated with the data objects and the platform would cause the panelof FIG. 10 to display indicia of the data objects, in much the same wayas illustrated in FIG. 8.

If the newly created panel is merely a time-based panel, the platformwill update the panel to be associated with data objects received whilethe panel is actively displayed. In particular, while the display isdisplaying a time-based panel, as the platform receives one or morefurther data objects, the platform would automatically associate thosedata objects with the panel (storing the panel and the data objects in adatabase relationship with each other) and would cause the display topresent the data objects in association (as data objects of) the panel.Conveniently, this causes the panel to define a record of data objectsrelevant to the user during the period that the panel is active.

On the other hand, if the newly created panel is a subject-matter panel,the platform will update the panel to be associated with received dataobjects that fall within the panel's subject-matter filter. Asubject-matter panel may also have a time-based property such that itmay be limited to association with data objects that are received whilethe panel is active, provided that the data objects fall within itssubject-matter filter. Alternatively, however, the platform may insteadassociate a subject-matter panel with data objects that fall within thepanel's subject matter filter even if the data objects are received whenthe panel is not active.

In practice, when a panel is first defined, the platform may store thepanel object with various object properties, such as a panel title (userdefined or platform defined), a subject-matter filter, and the like. Asor when the panel is then actively displayed, or at other times ifappropriate, the platform may then update the panel object bydetermining that particular data objects should be associated with thepanel and by storing a database association between the panel object andthose data objects (e.g., storing the panel in association with thereceived additional data objects). Further, when a panel becomes closedin that it is no longer actively displayed, the platform may update thepanel object to indicate a time when the panel was last active, so thatthe graphical user interface can present an indication of when a givenpanel was last accessed.

Conveniently with this arrangement, a user may readily keep track of andrecall the user's data interactions over time. By way of example, whenthe user is at work and is focused on an engineering project regarding aparticular subject, with the project involving user interaction withparticular applications on the user's work computer, placing orreceiving of various phone calls, playing or recording of various media,and the like. To help the user keep track of that project, the user mayrun the panel-management program and may define a time-based panel to beassociated with currently related data objects, or a subject-matterpanel to be associated with the subject of the engineering project.

While busily working on that project, the user may then receive a callfrom the user's friend Mary to discuss plans for a vacation, which mayrequire the user to do some web research related to the vacation. Thus,the user may need to switch from focusing on the engineering project tofocusing on the vacation. To facilitate this, the user may readilycreate a new subject-matter panel related to Mary and the vacation, andthat panel may become associated with data objects representing the calland the web browsing experience. When the user does this, the platformmay automatically cause the display to present the new “Mary” panel andto discontinue active presentation of the engineering project relatedpanel.

After finishing the call with Mary, the user may then need to return towork on the engineering project. To facilitate determining whatapplications the user was focused on, what calls the user had made, andwhat media the user had recorded or played in that context, the user maythen readily select the previously defined time-based panel or subjectmatter panel, which would present the associated data objects. Inparticular, through interaction with the graphical user interface, theuser may select the previously defined panel. Thus, the platform mayreceive data corresponding to input defining a request to switch betweendisplay of the “Mary” panel and display of the selected panel, and theplatform may responsively cause the display to switch from displayingthe “Mary” panel (i.e., to discontinue presentation of the “Mary” panel)to re-presenting the previously defined panel.

While the foregoing has described an example mechanism for creation ofpanels, it will also be understood that other mechanism may be possibleas well.

By way of example, the computing system that provides the presentpanel-management functionality may be arranged to automatically create,and perhaps automatically cause display of, a new subject-matter panelbased on user device event and/or state. This act of automaticallycreating a new subject-matter panel differs from automaticallyassociating a previously-defined panel with newly received data objectspursuant to a subject-matter filter of the previously-defined panel.Rather, in this example, the computing system would automatically createa subject-matter panel, and would thus automatically define the subjectmatter filter for the subject-matter panel, based on user device eventand/or state, which the computing system would learn about by receivingone or more data objects representing the event and/or state.

Optimally, the event and/or state in this example could comprise theuser device presenting particular information in response to userrequest to present the particular information. For example, the eventand/or state could be the user device displaying a new applicationwindow, tab, or other particular object (e.g., retrieving and presentinga document within an application) in response to receipt of user requestto open the new application window, tab, or other particular object. Asanother example, the event and/or state could be the user device playingparticular media (e.g., a particular song or video) in response to userrequest to play the particular media. Numerous other examples arepossible as well.

Advantageously, when the computing system receives one or more dataobjects that represent a user device presenting particular informationin response to user request, such as the user device opening andpresenting an application, loading and presenting a document into anapplication, or playing of particular media, the computing system mayautomatically create a new subject-matter panel with a filter based on asubject of the data object. The theory here is that the user devicepresenting particular information in response to user request mayindicate that the user is interested in that particular information, andso the computing system may help the user by automatically creating forthe user a subject-matter panel that has a subject-matter filterencompassing that information. The computing system may do this withoutinteracting with the user at the time, such as without prompting theuser to approve the automatic creation of the subject-matter panel.Alternatively, the computing system may be arranged to request userapproval for creation of the subject-matter panel.

In practice, for instance, when the computing system receives one ormore data objects, the computing system may evaluate the one or moredata objects and determine that they define a record of a user devicepresenting particular information at user request. For instance, thedata objects may specify a user-interface function such as receipt of auser request to present the particular information and/or may specifythat the user device presented the particular information in response touser request. Other mechanisms for determining that a data objectsrepresents user device presentation of particular information at userrequest could be possible as well. In response to determining that theone or more data objects represent user device presentation ofparticular information at user request, the computing system may thenautomatically determine one or more create and store a newsubject-matter filter keyed to a subject of the particular information.

As a specific example, consider a scenario where a user operating apersonal computer opens a word processing application and loads orcreates a document containing text and/or images regarding a particularsubject. In response, the personal computer may generate and provide adata object that represents the event of the personal computerpresenting the document at the user's request (e.g., specifying that thedocument was opened in response to user input requesting the document tobe opened, or specifying that the document was created by user input).Further, the data object may embody or refer to the document itself.Upon receipt of that data object, the computing system may thenprogrammatically analyze the data object and determine from its metadataor content that the personal computer presented information related tothat subject in response to user request. In response to making thatdetermination, the computing system may then automatically create a newsubject-matter panel for the user, defining for the subject-matter panela subject-matter filter keyed to that subject. Further, the computingsystem may automatically cause that personal computer or another deviceof the user to display the newly created panel.

As another example, consider a scenario where a user operating a mediaplayer such as a television or set top box directs the media player toplay particular media, such as to tune to and present a particulartelevision program for instance. In response, the media player maygenerate and provide a data object that represents the event of themedia player presenting that particular television program at the userrequest. Upon receipt of that data object, the computing system may thenprogrammatically analyze the data object and determine from its metadataor content that the media player presented media of a particular genre,a particular title, a particular performer, or having one or more otherattributes, and the computing system may automatically create a newsubject-matter panel for the user with a subject-matter filter havingthe same one or more attributes. Further, the computing system mayautomatically cause a user device to display the newly created panel.

In practice, the computing system may thus receive one or more dataobjects that define a record that a user device presented particularinformation at user request. In response, the computing system may hendetermine an attribute of the particular information and mayautomatically create and store a new subject-matter panel having asubject-matter filter keyed to the determined attribute. Further, oncethe subject-matter panel is created, the computing system may thenfurther automatically associate the panel with additional data objectsrelated to similar information.

FIG. 11 is next a flow chart depicting functions that can be carried outin accordance with a representative method. The functions shown in thefigure may be carried out in the order shown or in another order and maybe combined or distributed in various ways.

As shown in FIG. 11, at block 86, a computing system receives aplurality of data objects each representing device event informationand/or device state information. At block 88, the computing systemextracts one or more semantic objects from the received data objects. Atblock 90, the computing system causes a display of a device to displayindicia of a plurality of the received data objects and a plurality ofthe extracted semantic objects. At block 92, the computing systemreceives data corresponding to input representing a selection of one ormore of the presented indicia, and the computing system responsivelyuses the selection as a basis to define a subject-matter filter for thepanel. And at block 94, the computing system causes the display topresent the panel.

At block 96, the computing system receives additional data objects. Atblock 98, the computing system determines that the received additionaldata objects match the subject-matter filter of the panel. And at block100, responsive to that determination, the computing system causes thedisplay to present indicia of the received additional data objects inassociation with the presented panel, and the computing system storesthe panel in database association with the received additional dataobjects.

Further, at block 102, the computing system determines that one or moreof the received data objects defines a record that a user devicepresented particular information at user request. And at block 104, inresponse to that determination, the computing system determines anattribute of the particular information and automatically creates andstores a new panel having a subject-matter filter keyed to thedetermined attribute. In addition, at block 106, the computing systemcauses the display to present the new panel.

It should be understood that for situations in which the embodimentsdiscussed herein collect and/or use any personal information about usersor information that might relate to personal information of users, theusers may be provided with an opportunity to opt in/out of programs orfeatures that involve such personal information (e.g., information abouta user's preferences or a user's contributions to social contentproviders). In addition, certain data may be anonymized in one or moreways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be anonymizedso that the no personally identifiable information can be determined forthe user and so that any identified user preferences or userinteractions are generalized (for example, generalized based on userdemographics) rather than associated with a particular user.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopeand spirit being indicated by the claims.

1. A non-transitory computer readable medium having stored thereoninstructions executable by a computing system to carry out functions forpanel-based management of data comprising: receiving data objects from aplurality of sources, and storing the received data objects, whereineach data object defines a record of information regarding at least oneof a device event and a device state, and wherein each data object has atimestamp; storing a plurality of panels each defining a respectiveassociation with a set of the received data objects, the plurality ofpanels including at least one of (i) a time-based panel defining anassociation with received data objects based on timestamps of thereceived data objects and (ii) a subject-matter panel defining anassociation with the received data objects based on subject matter ofthe received data objects in accordance with a subject-matter filter ofthe subject-matter panel; causing a display of a device to display agraphical user interface having at least: (a) a general data-feedcomponent for presenting indicia of the received data objects, whereinthe indicia of the received data objects presented in the generaldata-feed component are selectable to cause the display to presentrespectively indicated data objects, (b) a panel-presentation componentfor presenting indicia of previously created panels, wherein thepresented indicia of the previously created panels include, for each ofthe previously created panels, presentation of an indicium of a set ofreceived data objects associated with the previously created panel, and(c) a panel-definition component for receiving commands to create newpanels and to further define the previously created panels, forpresenting indicia of items selectable to be used as a basis to define asubject-matter filter respectively for any panel, and for receivingselection of one or more of the presented indicia, wherein the itemscomprise (i) one or more of the received data objects and (ii) one ormore semantic objects extracted from the received data objects, andwherein a command to create a new panel is by default a command tocreate the new panel as a time-based panel unless and until a particularsubject-matter filter is defined for the new panel; receiving datacorresponding to input defining one of the commands to create a newpanel received through the panel-definition component, and responsivelycausing the display to present the new panel as a time-based panel to bepopulated with indicia of any data objects received by the computingsystem while the new panel is being displayed; receiving datacorresponding to input representing the selection of one or more of thepresented indicia of the items to be used as the basis to define thesubject-matter filter for a first panel, and responsively defining thesubject-matter filter for the first panel based on one or moreattributes of one or more items whose presented indicia were selected;and determining that one or more of the received data objects defines arecord that a user device presented particular information at userrequest, and responsively identifying an attribute of the particularinformation and automatically creating and storing a second panel havinga subject-matter filter keyed to the identified attribute.
 2. Thenon-transitory computer readable medium of claim 1, wherein thefunctions further comprise: receiving data corresponding to inputrepresenting a request to switch between display of a particular paneland display of another panel; and responsive to the request, causing thedisplay to switch from displaying the particular panel to displaying theother panel.
 3. The non-transitory computer readable medium of claim 1,wherein the record of information defined by each of the received dataobjects comprises a record of information regarding user-interfaceoperation.
 4. The non-transitory computer readable medium of claim 1,wherein the indicia of the previously created panels presented by thepanel-management component are selectable to cause the display topresent expanded indicia of corresponding sets of data objectsassociated with the indicated panels.
 5. The non-transitory computerreadable medium of claim 1, wherein the computing system is implementedby the device whose display is caused to display the graphical userinterface.
 6. The non-transitory computer readable medium of claim 5,wherein the plurality of sources comprise sources selected from thegroup consisting of (i) logic modules of the device and (ii) otherdevices in communication with the device.
 7. The non-transitory computerreadable medium of claim 1, wherein the computing system is implementedas a cloud-based computing system, wherein the plurality of sourcescomprise devices in network communication with the cloud-based computingsystem.
 8. The non-transitory computer readable medium of claim 7,wherein the device whose display is caused to display the graphical userinterface is also in network communication with the cloud-basedcomputing system.
 9. The non-transitory computer readable medium ofclaim 1, wherein the functions further comprise: automatically causingthe display to display the automatically created second panel.
 10. Thenon-transitory computer-readable medium of claim 9, wherein the one ormore received data objects defining the record that the user devicepresented the particular information at user request comprise one ormore data objects defining a record that the user device presented a newwindow at user request, the window containing the particularinformation.
 11. The non-transitory computer readable medium of claim 1,wherein the functions further comprise: causing the display to presentthe indicia of the items selectable to be used as the basis to define anew subject-matter filter for the new panel.
 12. The non-transitorycomputer readable medium of claim 11, wherein the functions furthercomprise: extracting the one or more semantic objects from the receiveddata objects; and generating the indicia of the items selectable to beused as the basis to define the new subject-matter filter for the newpanel.
 13. The non-transitory computer-readable medium of claim 12,wherein a given one of the received data objects represents a message,and wherein extracting the semantic objects comprises: for the givendata object, extracting as at least one of the semantic objects anidentity of a sender or recipient of the message.
 14. The non-transitorycomputer-readable medium of claim 11, wherein defining the newsubject-matter filter for the new panel based on the one or moreattributes of the one or more items whose presented indicia wereselected comprises: identifying the one or more attributes of the one ormore items whose presented indicia were selected; and defining the newsubject-matter filter of the new panel to limit to any of the receiveddata objects that have the one or more identified attributes.
 15. Thenon-transitory computer-readable medium of claim 14, wherein thefunctions further comprise: after defining the subject-matter filter forthe new panel, causing the display to display the new panel as asubject-matter panel including an indicium of a set of data objectsmatching the new subject-matter filter defined for the new panel.
 16. Amethod for panel-based management of data comprising: receiving into acomputing system, from a plurality of devices, data objects eachrepresenting one or more of device event information and device stateinformation; the computing system extracting semantic objects from thereceived data objects; the computing system causing a display of adevice to display indicia of (i) a plurality of the received dataobjects and (ii) a plurality of the semantic objects extracted from thereceived data objects; the computing system receiving data correspondingto input representing a selection of one or more of the displayedindicia, and the computing system responsively using the selection as abasis to define a first subject-matter filter for a first panel, whereinthe selection comprises selecting of the one or more of the displayedindicia of the plurality of received data objects, and wherein using theselection as the basis to define the first subject-matter filtercomprises adopting as one or more attributes of the first subject-matterfilter one or more attributes of one or more data objects whose indiciawere selected; the computing system causing the display to present thefirst panel; the computing system (i) receiving additional data objects,(ii) determining that the received additional data objects match thefirst subject-matter filter of the first panel, and (iii) responsive tothe determining, causing the display to present indicia of the receivedadditional data objects in association with the presented first panel;the computing system determining that one or more of the received dataobjects defines a record that a user device presented particularinformation at user request, and the computing system responsivelyidentifying an attribute of the particular information and automaticallycreating and storing a second panel having a second subject-matterfilter keyed to the identified attribute; the computing system causingthe display to present the second panel; the computing system receivingdata corresponding to input defining a command to create a new panel,wherein, unless and until a particular subject-matter filter is definedfor the new panel, the command to create the new panel is by default acommand to create the new panel as a time-based panel that defines anassociation with the received data objects based on timestamps of thereceived data objects; and responsive to receiving the datacorresponding to the input defining the command to create the new panel,the computing system causing the display to present the new panel as anew time-based panel to be populated with indicia of any data objectsreceived by the computing system while the new panel is being displayed.17. The method of claim 16, further comprising: the computing systemstoring the first panel in association with the received additional dataobjects; the computing system causing the display to discontinuepresentation of the first panel; and the computing system subsequentlyreceiving data representing input defining a request to re-present thefirst panel, and the computing system responsively causing the firstpanel to be re-presented.
 18. A non-transitory computer-readable mediumhaving stored thereon instructions executable by a computing system tocarry out functions for panel-based management of data comprising:receiving from a plurality of devices data objects each representing oneor more of device event information and device state information;extracting semantic objects from the received data objects; causing adisplay of a device to present indicia of (i) a plurality of thereceived data objects and (ii) a plurality of the semantic objectsextracted from the received data objects; receiving data correspondingto input representing a selection of one or more of the presentedindicia, and using the selection as a basis to define a firstsubject-matter filter for a first panel, wherein the selection comprisesselecting of the one or more of the presented indicia of the pluralityof received data objects, and wherein using the selection as the basisto define the first subject-matter filter comprises adopting as one ormore attributes of the first subject-matter filter one or moreattributes of one or more data objects whose indicia were selected;causing the display to present the first panel; receiving one or moreadditional data objects, determining that the one or more receivedadditional data objects match the first subject-matter of the firstpanel, and responsive to the determining, (i) associating the firstpanel with the one or more received additional data objects and (ii)causing the display to present indicia of the one or more receivedadditional data objects in association with the presented first panel;storing the first panel in association with the received additional dataobjects; determining that one or more of the received data objectsdefines a record that a user device presented particular information atuser request, and responsively identifying an attribute of theparticular information and automatically creating and storing a secondpanel having a second subject-matter filter keyed to the identifiedattribute; causing the display to present the second panel; receivingdata corresponding to input representing a request to create a newpanel, wherein, unless and until a particular subject-matter filter isdefined for the new panel, the request to create the new panel is bydefault a request to create the new panel as a new time-based panel thatdefines an association with the received data objects based ontimestamps of the received data objects; in response to receiving thedata corresponding to the input representing the request to create thenew panel, creating and causing the display to present the newtime-based panel; while the display is presenting the new time-basedpanel, receiving one or more further data objects and automaticallycausing the display to present the one or more received further dataobjects in association with the presented new time-based panel; andstoring the new time-based panel in association with the one or morereceived further data objects.